#ifndef __MYSTDIO_H__
#define __MYSTDIO_H__

//设置刷新方式
#define FLUSH_NONE 1
#define FLUSH_LINE 2
#define FLUSH_FULL 4

//刷新是强制的还是按照刷新规则
#define FORCE 1
#define NORMAL 2

//我们自己封装的文件描述符中的缓冲区
#define SIZE 4096
#define UMASK 0666//创建文件的权限
 
//描述文件的结构体
typedef struct _MY_TO_FILE
{
    int fileno;//文件描述符
    int flag;//刷新方式
    char outbuffer[SIZE];//语言级别的缓冲区
    int curr;//当前缓冲区有效字符的个数
    int cap;//缓冲区的大小

}MyFILE;

//打开文件、写、刷新、关闭文件

MyFILE* my_fopen(const char* filename,  const char* mode);
void my_fclose(MyFILE* fp);
int my_fwrite(const char* s , int size , MyFILE* fp);
void my_fflush(MyFILE* fp);

#endif
